// 导入API
import { songItems,host , parseLyric, songSearch , albumSong, allPlayListSong,getCategorySongList} from '../api/index'

// 导出歌曲数据模块
export default {
    // 设置命名空间
    namespaced: true,
    // json格式数据
    // 储存数据
    state: {
        // 歌曲列表
        songs: []
    },
    // 读取数据（相当于computed 只读不写）
    getters: {

    },
    // 用于修改state对象下的数据
    mutations: {
        // 用于修改state对象下的数据
        setSong(state,value){
            console.log("-1-1-1",value)
            state.songs = value;
        },
    },
    // 用于执行mutations对象下的方法（异步）
    actions: {
        // 用于执行mutation对象下的方法（凡是涉及异步操作，都在这个action对象下操作）
        // 获取歌曲
        async addSongFn($store,value){
            // console.log(value)
            // 调用网络请求接口
            // await songItems({page: 1,pageSize:20}).then(
            await songItems(value).then(
                content => {
                    // 解构赋值
                    let {code , result } = content;
                    // console.log(2222,result)
                    if(code == 200) {
                           var arr = result.map(item=>{
                                item.song_cover_url = host + item.song_cover_url ;
                                item.src = host + item.src ;
                                item.lyricArray = parseLyric(item.lyrics);
                                return item;
                            })
                        // 提交mutation对象下的方法
                        $store.commit('setSong', arr)
                    }
                }
            )
        },
        // 搜索歌曲
        async searchSongFn($store,value){
            // console.log(value)
            // 调用网络请求接口
            await songSearch(value).then(
                content => {
                    // 解构赋值
                    let {code , result } = content;
                    // console.log(2222,result)
                    if(code == 200) {
                           var arr = result.map(item=>{
                                item.song_cover_url2 = item.song_cover_url ;
                                item.src2 = item.src ;
                                item.song_cover_url = host + item.song_cover_url ;
                                item.src = host + item.src;
                                item.lyricArray = parseLyric(item.lyrics);
                                return item;
                            })
                        // 提交mutation对象下的方法
                        $store.commit('setSong', arr)
                    }
                }
            )
        },
        // 获取专辑歌曲
        async albumSongFn($store,value){
            // console.log(value)
            // 调用网络请求接口
            await albumSong(value).then(
                content => {
                    // 解构赋值
                    let {code , result } = content;
                    // console.log(2222,result)
                    if(code == 200) {
                           var arr = result.map(item=>{
                                item.song_cover_url = host + item.song_cover_url ;
                                item.src = host + item.src ;
                                item.lyricArray = parseLyric(item.lyrics);
                                return item;
                            })
                        // 提交mutation对象下的方法
                        $store.commit('setSong', arr)
                    }
                }
            )
        },

        // 获取歌单歌曲
        async allPlayListSongFn($store,value){
            console.log(value)
            await allPlayListSong(value).then(
                content => {
                    // 解构赋值
                    let {code , result } = content;
                    // console.log(5555,result)
                    if(code == 200) {
                           var arr = result.map(item=>{
                                item.song_cover_url = host + item.song_cover_url ;
                                item.src = host + item.src;
                                item.lyricArray = parseLyric(item.lyrics);
                                return item;
                            })
                        // 提交mutation对象下的方法
                        $store.commit('setSong', arr)
                    }
                }
            )
        },

        async addCategoryFn($store,value) {
            console.log(value)
            await getCategorySongList(value).then(content => {
                // 解构赋值
                let {code , result } = content;
                // console.log(5555,result)
                if(code == 200) {
                       var arr = result.map(item=>{
                            item.song_cover_url = host + item.song_cover_url ;
                            item.src = host + item.src;
                            item.lyricArray = parseLyric(item.lyrics);
                            return item;
                        })
                    // 提交mutation对象下的方法
                    $store.commit('setSong', arr)
                }
            }).catch(err => console.log(err))
        },
    },
}